package com.iims.project.service;

import com.iims.project.domain.CmisProject;
import com.iims.project.vo.query.GroupProjectSearchQuery;
import com.iims.project.vo.resp.CmisProjectDetailVo;

import java.util.List;

/**
 * @author fanpei
 * @date 2021/7/7 14:33
 */
public interface IProjectService {
    /**
     * 查询项目列表
     *
     * @param project
     * @return
     */
    List<CmisProjectDetailVo> getProjectList(CmisProject project);

    /**
     * 分组搜索
     *
     * @param groupSearchQuery
     * @return
     */
    List<CmisProjectDetailVo> getProjectListByGroup(GroupProjectSearchQuery groupSearchQuery);

    /**
     * 查询合同项目列表
     *
     * @param contractId
     * @return
     */
    List<CmisProjectDetailVo> getContractProjectList(Long contractId);

    /**
     * 查询指定项目详情
     *
     * @return
     */
    CmisProjectDetailVo getProjectDetailById(Long proId);

    /**
     * 新增
     *
     * @param project
     */
    void insertProject(CmisProject project);

    /**
     * 更新
     *
     * @param project
     */
    void updateProject(CmisProject project);

    /**
     * 删除
     *
     * @param projectId
     */
    void deleteById(Long projectId);

    /**
     * 检查proName是否唯一
     *
     * @param project
     * @return
     */
    String checkProNameUnique(CmisProject project);

    /**
     * 检查项目使用情况
     *
     * @param projectId
     * @return
     */
    boolean checkCmisProjectUse(Long projectId);

}
